package com.atues.str;

import java.util.ArrayList;
import java.util.List;

public class Solution {
    public String reverse(String s) {
        s= s.trim();
        int begin = s.lastIndexOf(' ')+1;
        StringBuilder sb = new StringBuilder(s);
        int j =begin - 1,blank = 0;
        for (int i = begin - 1; i >= 0; i--) {


            if(sb.charAt(i) == ' '){

                if(j!= i  && blank == 0 ){
                    sb.append(" "+sb.substring(i + 1, j + 1));
                    j = i;
                }
                blank = 1;


            }else if(sb.charAt(i) != ' ' && blank == 1){
                blank = 0;
                j = i;
            }
            if(i == 0 && blank ==1)
                sb.append(" "+sb.substring(0, j + 1));
        }


        return sb.substring(begin, sb.length());
    }

    public String covert(String s, int numRows) {

        List<StringBuilder> res = new ArrayList<>(numRows);
        for (int i = 0; i < numRows; i++) {
            res.add(new StringBuilder());
        }
        int i = 0, flag = -1;
        for (char c : s.toCharArray()) {
            res.get(i).append(c);
            if (i == 0 || i == numRows - 1) {
                flag = -flag;
            }
            i += flag;
        }
        StringBuilder sb = new StringBuilder();
        for (StringBuilder stringBuilder : res) {
            sb.append(stringBuilder);
        }
        return sb.toString();
//
//        if (numRows == 1) return s;
//
//        char[][] arrs = new char[numRows][1001];
//        int i =0,r =0,c = 0;
//        while(i<s.length()){
//            while(i < s.length() && r < numRows){
//                arrs[r++][c] = s.charAt(i++);
//            }
//            r= numRows - 1;
//            c++;
//            r--;
//            while(i < s.length() && r >=0){
//                arrs[r--][c++] = s.charAt(i++);
//            }
//            r=0;
//            r++;
//            c--;
//        }
//
//        StringBuilder sb = new StringBuilder();
//        char c1 ;
//        for( i = 0; i < arrs.length; i++){
//            for (int j = 0; j < arrs[i].length; j++) {
//
//                if( (c1 = arrs[i][j])  != ' ' && arrs[i][j]!=0 ){
//
//                    sb.append(c1);
//                }
//
//            }
//        }
//        return sb.toString();
//    }
    }

    public static void main(String[] args) {
        Solution solution = new Solution();
//        String s = "example";
//        String s1 = solution.reverse(s);
//        System.out.println(s1);
        String s = "PAYPALISHIRING";
        int n = 80;
        char c = (char)n;
        System.out.println(c);
        int numRows = 4;
        String s1 = solution.covert(s, numRows);
        System.out.println(s1);


    }
}
